#pragma once
#include "glm/glm.hpp"
using namespace glm;
#include "Ray.h"
#include "Light.h"
#include <vector>

class BVH;
//#include "BVH.h"
#include "Intersection.h"
class Scene;

class SurfaceShader
{
public:
	SurfaceShader(float _amount);
	~SurfaceShader();

	//abstract: get the color at that point with that surface normal and the ray
	virtual vec4 getColor(Intersection &_int, Scene* _s){ return vec4(0.5, 0.5, 0.5, 1); }

	float amount(){	return amt;	}
	void amount(float _amount){	amt = _amount; }
private:
	//amount of influence this shader has
	float amt;
};

